home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BMUG PD-ROM B4
/
PD-ROM B4.iso
/
Utilities
/
TidBITs
/
TidBITS 101-125
/
TidBITS#117⁄Nisus_Features.etx
< prev
next >
Wrap
Text File
|
1992-05-27
|
30KB
|
545 lines
TidBITS#117/Nisus_Features
==========================
The 2nd part of our three-part review of Nisus.
Copyright 1990-1992 Adam & Tonya Engst. Non-profit, non-commercial
publications may reprint articles if full credit is given. Other
publications please contact us. We do not guarantee the accuracy
of articles. Publication, product, and company names may be
registered trademarks of their companies. Disk subscriptions and
back issues are available.
For more information send email to info@tidbits.halcyon.com or
ace@tidbits.halcyon.com -- CIS: 72511,306 -- AOL: Adam Engst
TidBITS -- 9301 Avondale Rd. NE Q1096 -- Redmond, WA 98052 USA
--------------------------------------------------------------
Topics:
Rulers and Styles - I
Rulers and Styles - II
Rulers and Styles - III
Find/Replace
Macros and Programming
Broken Bells and Feeble Whistles
[Archived as /info-mac/digest/tb/tidbits-117.hqx; 30K]
Rulers and Styles - I
---------------------
The horizontal ruler area at the top of a text window contains the
expected formatting tools: you can set the paragraph containing
the insertion point to be ragged-right, ragged-left, centered, or
right-and-left justified; you can insert four kinds of tabs;
increment or decrement line leading and paragraph leading; and, of
course, slide the wrapping margins. There is also a ruler icon
which, if checked, causes small ruler symbols - the Governing
Rulers - to become visible to the left of some paragraphs in the
text.
It appears that Paragon began by hoping to do without Word-type
named paragraph styles altogether; and the curious hierarchy of
ways to manipulate paragraph formatting reflects the remnants of
this hope. At the bottom of the hierarchy is a mechanism for
physically and namelessly manipulating paragraph styles, the
Governing ruler, rather like the ruler in the original MacWrite.
Under this metaphor a ruler appearing in the left margin continues
to govern every subsequent paragraph until a paragraph is
encountered whose format information (margins, justification, tab
placement, line leading, paragraph leading, etc.) differs in some
way, and then a new ruler appears in the left margin next to that
differing paragraph.
You can do many things with these rulers:
(i) You can alter the format of one paragraph. <more>
(ii) You can select any number of paragraphs (contiguous or
otherwise, remember) and alter their formatting. <more>
(iii) You can alter the format of one paragraph and all contiguous
paragraphs governed by the same individual ruler. <more>
(iv) You can alter the format of one paragraph and all identical
paragraphs - that is, all paragraphs anywhere in the document
whose formatting is just like the current paragraph. This is a
cool feature because you can essentially redefine a paragraph
style for the whole document without ever worrying about style
names. <more>
(v) You can treat the Governing rulers that appear in the margin
as characters, and cut and paste them as a way of altering
paragraph formats. <more>
Adam thinks that when it comes right down to using Nisus, over 90%
of users will never even notice or care that they can do anything
but format either the paragraph holding the insertion point or the
selected paragraphs, although he admits to being fond of the
ability to cut, copy, and paste ruler icons to format text. This
may be true, though I happen to think that even such users will
probably accidentally run across the more advanced properties of
Governing rulers. But in any case we both agree that the
combinations of these various actions on Governing rulers are
extremely powerful, a fantastic implementation of the concept.
Rulers and Styles - II
----------------------
The Paragon people at some point decided that this way of working
with formats was incomplete, and so a second level of hierarchy is
included, Named Rulers. A ruler can be assigned a name; if this is
done, a slightly different ruler icon appears, and the name can
now be selected from a pop-up menu in the ruler at the top of the
window as a way of assigning the given format to a paragraph, just
as in Word. <more> Any changes made to the formatting of any
paragraph governed by a Named ruler will instantly be applied to
all paragraphs governed by a ruler with that name; this is what
makes Named rulers so powerful and useful.
(If you've been working entirely with unnamed rulers and decide
things would be easier if you used Named rulers instead, it is
easy to make the transition: if you hold down Command as you name
a ruler, all identical rulers throughout the document will be
given that name. Try THAT with Microsoft Word! I'm deadly serious
here: the only way in Word to give a single Style name to all
identical paragraphs in Word is to find them all, one by one, and
apply that style. Score a big one for Nisus here.)
Things can get a bit tricky in the interplay between named and
unnamed rulers; you'll have to download the longer version of this
review if you want details. <more>
Rulers and Styles - III
-----------------------
The top level in the formatting hierarchy is User-Defined Styles.
In Nisus, the term Style in this context does not refer to
paragraph formatting per se. It may involve character font,
character size, character styling, or paragraph formatting by way
of a ruler name - or any combination of these. (You will notice
that paragraph formatting, as we have been discussing it so far,
has not involved character features in any way. Pasting a named
ruler, for example, will do nothing to the font, size, or style of
any characters in the document.) This is the level on which you
really want to operate, because it is the most global and
convenient. Any change made to any part of the definition of a
User-Defined Style is instantly reflected in all text to which
that Style is attached; and you make your changes quickly and
easily in a dialog box. Nisus is incredibly intelligent about
remembering why text looks the way it does; you can cancel the
effect of a User-Defined Style upon text, just by selecting the
text and choosing the Style from the Style menu (whereupon it
unchecks in the menu); and when you do, characteristics of the
text that are imposed by that Style are removed - but
characteristics of the text that are imposed by other Styles
applying to it, or that were imposed manually (by choosing Italic
from the menu, for example), are not removed.
The price of this power, though, is that User-Defined Styles work
in a tricky way. The options available to the user when defining a
Style include Named Ruler, font, size, color, and character
styling. Now, if a User-Defined Style does not include a ruler
name, then when you choose it from the Style menu it applies to
the character formatting just of any selected material, or to the
insertion point and any subsequent typing. But if it does include
a ruler name, then, when you choose it from the Style menu, no
matter how much text is selected, the ENTIRE paragraph containing
the insertion point will take on the character formatting defined
in the Style, - and the Named ruler in question will appear to the
left of the paragraph. <more>
Well, you may disagree, but I find this more than a tad confusing.
<more> However, let me get one thing perfectly clear: despite
these confusing behaviours, I LOVE the way Nisus handles Rulers
and Styles, and I think they put Word completely in the shade;
Nisus gives you a power and convenience that Word just cannot
match. <more>
A noteworthy aspect of Rulers and Styles is the way in which these
are made transferable from one document to another. If several
documents are open at once, the User-Defined Styles of all of them
are available in the Style menu (those that are not in the
frontmost document are marked with the name of the document they
are in). If you select a User-Defined Style that is not in the
frontmost document, it will be applied in the frontmost document,
and it will also be transferred into that document. Thus a single
action can change the character and paragraph formatting of a
paragraph, and create a new Named ruler in your document, and
define a new User-Defined Style in your document. Since you do
this with only those Styles that you desire in your document, you
have a method of making paragraph formatting and character styling
match that of another document which is, I think, far better than
that of Microsoft Word.
You can also create style and formatting libraries. A document
called "Nisus New File" in the same folder as Nisus will contain
all the formatting information for new files, so you can create
styles in that document and then delete all the text, leaving just
the styles to use later on in each new document you create. Or you
can have the styles live in an ordinary file, since, remember, any
window (including a macro file) that you open on the screen will
have its styles available for use in any other document. <more>
Named rulers also provide a handy way of navigating your document.
If you hold down the Shift key while selecting the name of a Named
ruler from the pop-up menu at the top of the window, Nisus will
find the next instance of that Named ruler for you. As you will
doubtless assign a Named ruler (most likely by way of a Style) to
every heading your document, for example, you can now quickly page
through the sections of your work. (You can also find character
styling or User-Defined Styles in Nisus; see below.)
Missing is any way to arrange Named rulers or Styles into a
hierarchy, by defining one in terms of another, as Word does. If I
change the principal font of my main paragraphs, I probably want
that of my subordinate paragraph types to change to match it. In
Word you can arrange to have this happen automatically; in Nisus
the onus is on the user to select beforehand all paragraph types
to which a change is to be made. (However, once you do this,
changes made to a Named ruler or Style are of course reflected
instantly throughout the document.)
A very important thing you cannot do from within a Style
definition is to require that your paragraph be kept on the same
page with the start of the following paragraph. There is thus no
way, from within the Styles dialog, to ensure that a heading will
not become isolated from the succeeding paragraph, appearing
instead alone at the bottom of the page. (Indeed, this error
occurs several times in the Nisus manual.) This is not to say that
there is no way whatever to ensure that a paragraph will be kept
with following material; but again, this is a place where Nisus's
philosophy of what level a feature should dwell on might strike
one as perverse. Under the Format Menu is an item, Keep On Same
Page. I don't know why this is under the Format Menu; it does not
in fact alter formatting; Keep On Same Page is in reality a style
(I think of it as a pseudo-style), and what choosing it from the
menu really does is to impose this style on your selected text. If
you want to prevent material from being interrupted by a soft page
break, you have to impose the Keep On Same Page pseudo-style upon
the entire run of material yourself. What you would need to do in
order to keep headings from being separated from their following
paragraph, for example, is to write a macro which selects every
heading and a couple of lines of whatever follows, and imposes the
Keep On Same Page style onto them. In the same way, Nisus does not
come with any automatic prevention of widows and orphans: it is
possible that as you type, a single line from the start or end of
a paragraph will wind up isolated on a page. To prevent widows and
orphans in your printed document, you run a macro (included with
Nisus): it selects the first two lines and the last two lines of
every paragraph, and imposes the Keep On Same Page style.
You have to adjust your working method to accommodate this way of
doing things, and you may find it just too inconvenient to do so.
It is up to you to remember to run these macros relating to widows
and orphans just before print time; and you dare not run them any
sooner, either, for if you impose the Keep On Same Page style onto
a run of text, and then find you need to make alterations to that
text, your Keep On Same Page style will be incorrectly attached in
the document - being a style, it is attached to specific text, and
is moved or expanded or deleted with that text. Moreover, there is
no way to render the presence of Keep On Same Page style visible
on the screen, so it is easy to make an error in this regard
(though admittedly you could make such text temporarily visible
by writing a macro to select it - but this is only a workaround,
not a real solution). A macro is included for simply removing
all Keep On Same Page styling, and you certainly would need to
run this, if you have previously run the Widows and Orphans
macro, before making any changes to your document that might
alter the first or last lines of any paragraphs, or else your
widows and orphans will come out wrong; but this can hardly be
termed a solution. What if some of your paragraphs or paragraph
styles intentionally include Keep On Same Page formatting that
you would rather not lose (such as a small columnar table that
needs to be kept together)? The macro will undo that styling as
well! <more>
Find/Replace
------------
We turn now to the bottom level of Nisus, the area where the
nitty-gritty is, the stuff that Nisus seems truly made for: the
find-and-replace and macro/programming facilities.
You set up a find or find-and-replace in a dialog window, and the
flexibility of what you can do is astonishing. You can include any
sort of styling in your Find text or your Replace text - font,
size, character styling, User-Defined Styles - as part of what
Nisus is to look for, or the change it is to make. A built-in
global regular expression parser ("grep"), or as Paragon was asked
by Apple to call it, PowerSearch Plus, lets you build complex
textual patterns to find and complex ways of dealing with them
when they are found, and, in the Find dialog window, those not
wishing to learn and type the cryptic, but oh-so-powerful codes to
match patterns can select expression components from a menu
instead. (It's interesting to note that Nisus is one of a few
programs that put menus in a window rather than further burdening
the menu bar, something which is especially handy on large and
multiple monitor setups. It would be nice to see more of this in
the future.) You can find forward or backwards through a document,
find one or all instances, limit your find to previously selected
text. You can have your find performed on just the frontmost
document, all open documents, or even on closed files for which
you provide a list via the Catalog.
There is no point trying to enumerate all the features of
PowerSearch Plus, but some examples will illustrate the power of
the results. To change all instances of underlined text to
italicised text is trivial. To change all instances of an imported
marked-up expression such as "<it>some text<ro>", where the <it>
and the <ro> may or may not be capitalised, so as to have the <it>
and <ro> removed and whatever is in between become italicised, is
only mildly less trivial. (That's a real example in my life.) To
find all instances of text that might be a phone number is an
interesting challenge, but it is in fact possible to set up a
single find that would be able to find such variations as "KI4-
3459", "(607)-4215151", and "301 421-5353"; a single find-and-
replace procedure might find all phone numbers regardless of their
format and alter them so that they conform to some set format -
say, parentheses round the area code if there is one, space after
the area code, hyphen between the first three and last four digits
of the number.
No doubt numerous possibilities for using all this power are
occurring to you as you read, from free text databasing to file
format translation - and rightly so. PowerSearch Plus (together
with the macro capacity) is what I bought Nisus for, and it has
done me yeoman service in this regard.
There isn't much not to like about this wonderful aspect of Nisus.
I have one suggestion, though. I often use foreign alphabets.
Nisus's PowerSearch Plus distinguishes numeric, alphabetic,
uppercase, lowercase, alphabetic-with-diacritical, and punctuation
characters, but these definitions are pre-defined for the Mac's
standard character set; the possibility that someone might be
using a font where it is not true that a character is uppercase
alphabetic if and only if it is ASCII 65-90, seems not to have
occurred to Nisus's designers. What I'd like to see is some sort
of dialog that would let the user define these categories for any
given font. Perhaps the new Script-Sensitive finding option
present in Nisus 3.06 indicates some coming step in this
direction; I've no documentation on it, so I can't tell.
Finding text also responds inconsistently to the Keep On Same Page
pseudo-style (see above). If text gets into the Find dialog that
is marked Keep On Same Page (which can happen quite easily without
the user's knowing it if Copy is used to obtain the text to be
sought), a style-sensitive find will not find text in the document
unless it is marked Keep On Same Page (quite disconcerting, since
the find will seem to be failing for no reason that the user can
detect); but if the text in the Find dialog is not marked Keep On
Same Page, then, even if the find is style-sensitive, text in the
document that is marked Keep On Same Page WILL be included as a
match. This is weird behaviour, but the root of the problem is
really the fact that Keep On Same Page is a pseudo-style.
Macros and Programming
----------------------
The macro facility is divided into two levels, referred to as
Macros and Programming. The difference is formal: the two levels
involve different commands, which cannot be combined on a single
line of a macro (though they can be combined within a single
macro), and the Programming Dialect requires the presence of a
special interpreter file. In addition, you can record a macro by
asking Nisus to watch what you are doing, and then go in
afterwards and customize the macro that Nisus has created for you.
The Macro level, in a nutshell, allows you to do anything you
could have done with menus and typing. You can enter find-and-
replace commands in a single line rather than having to make Nisus
fill in the Find dialog piece by piece, and a few other menu
commands can similarly be encoded in condensed form within a
macro; but the net effect is precisely to automate actions you
could have taken through menus and keyboard. A macro can call
itself or another macro; the find-and-replace syntax provides a
means of terminating a macro, which may be in a loop or calling
itself, if the find fails. The macro file appears in a window
which is a version of the regular text window, with the normal
tools at the top of the window and all menus available; this means
you can include rulers and styles in a macro and cause them to
appear in the document on which it operates. Writing macros is not
at all difficult (although I find I have to have the manual in
front of me if I'm to remember the find/replace syntax), and there
is an excellent facility for testing them: you can tell Nisus to
regard any selected text as a macro and to attempt to execute it
(and you can Undo the results in one stroke, so you're not afraid
to experiment).
What the Programming dialect adds is: mathematical and string
operations and functions; a rudimentary control structure (if,
goto, exit); functions for obtaining information about the
document - what is the name of the ruler governing the current
insertion point? what is the character offset (from the start of
the document) of the insertion point? of the current ruler? of the
next ruler?; a storage class which is sort of a cross between an
array and a stack; and commands for obtaining or setting the
selection point in the document. A thing you are likely to do is
combine the selection-point commands with the storage class. For
example, you might do a find which results in a number of non-
contiguous selections; you could then store the selection-points
in the storage class; this would allow you to run through the
selections one by one, doing some complicated (possibly
conditional) operation on each of them.
The power of all this is so obvious as to need no further
elaboration. Yet, to the reader's possible astonishment, I should
like to say that I think nowhere near enough power is provided.
Nisus has a lot to live up to in this regard. On my little Apple
][c, with just 128K, I ran a program called Gutenberg. This
fantastic program, by John Wagner of Scarborough, Ontario, is my
measuring stick for all other word processing programs. It had no
WYSIWYG bells and whistles, of course; but it revolved around a
programmable page-layout language with which you could dictate,
through a nesting series of macros, down to the last pixel what
your dot-matrix printer would ultimately generate (in other words
it was like TeX). What attracts me to Nisus is that it dwells in
Gutenberg's philosophical world; what disappoints me is that it
never quite lives up to its promise. That's right: I'm saying that
Gutenberg was more powerful.
The reason for this is that Gutenberg's programming language gave
the user access to something Nisus's does not: the global
variables of the document. There is no way to find out from within
a Nisus macro such things as: what is the font of the text at the
insertion point? what, numerically, is the placement of the left
margin? what, numerically, is the position of the insertion point
on the line? (You can figure out how many characters there are
from the start of the line to the insertion point, but not how
many centimetres.) Similarly, you cannot set these global
variables, unless through a menu command - and menu commands do
not do everything. There is absolutely no way, from within a Nisus
macro, to set a tab or move a margin. (Of course you can impose a
ruler which includes preset tabs and margins; but I'm talking
about being able to respond flexibly and numerically to the actual
situation: e.g., set the left margin to 1 inch more than its
present value.) I cannot believe that it would be much trouble to
add this sort of facility and give Nisus's programming language
some truly incredible power. Remember, this is all stuff I used to
be able to do on an Apple ][. Paragon does realize this, but has
had other priorities, such as getting Nisus Compact and Nisus XS
out the door. I'd like to see them focus on their programming
language next, since it would help Nisus to further break from the
word-processor pack.
One silly feature of macros, by the way, is that for many commands
you need to be able to enter special symbols for Option, Shift,
Command, arrow-keys, and the like; a special font is provided to
allow this, but there is no way to type some of the symbols (no
way to type any of them if you've no Control-key) - you have to
pull down a special window called ASCII which shows the symbols,
and double-click each one as needed to get it into the macro.
(However, things are better than they used to be. In Nisus 3.01,
you couldn't even see the symbols in the ASCII window; you had to
memorize their ASCII codes, and double-click the correct code
number to cause the required symbol to appear in your macro!) The
only other workaround is to turn on macro recording, type some
keys with the modifiers down, and then copy the modifier symbols
from the recorded macro. It's clumsy, but it works. I just leave
the symbols in a comment at the top of my macro file so they're
easy to get to.
Broken Bells and Feeble Whistles
--------------------------------
We now come to the top layer of Nisus, a number of miscellaneous
page-layout features cobbled together (a recent MacUser refers to
it as a "Swiss-Army knife," an apt comparison). In my opinion
these are of uneven quality and value, especially in comparison to
the fantastic find/replace and macro facilities; but I'll describe
them and let you be the judge.
The Footnote facilities are the most disappointing. On the one
hand, it is true, Nisus has commendably gone out of its way to
provide much more flexibility here than many other word processors
do. You can let any given footnote be numbered automatically or
give it a special symbol, or no symbol at all; if it is numbered,
you can include any sort of constant punctuation with the number,
superscripting it or not, and the number format can differ in text
and notes. (Thus the footnote could be marked as "(2)" in the text
but "2." in the footnote.) You can restart automatic footnote
numbering at any point in the document. You can have footnotes or
endnotes; if footnotes, you can choose whether footnotes may be
split, whether they may be separated from their main text, whether
they appear at the bottom of the page or tight up against the main
text, even how much of a page can maximally consist of footnote
material.
But you still wouldn't want to have to produce a proper book with
Nisus's footnote facilities. They are awkward to use because, as
pointed out already, you can't write or edit a footnote with the
main text in view without messing around with manually copying the
text and using the Show Clipboard feature. This may be a personal
thing, but I hate not being able to see my text while writing the
footnote. A Nisus document has no sections, so you cannot cause
notes to appear as endnotes after each section or chapter. An
unbelievably rudimentary omission is that Nisus does not allow you
to define the separator line between main text and footnotes
differently depending on whether the first note on that page
starts a footnote or is a continuation of a note from the previous
page (called a continuation separator); this is something that
even Microsoft Word lets you do, and it is _required_ by standard
typographical convention. You cannot preset the font, size, and
character styling of footnote numbers; you have to use the
find/replace facilities to change them after they are created, and
if you then make a new footnote you'll have to do it again. On the
other hand, you _must_ preset the numbering style of footnotes; if
you create several footnotes and decide you don't like their
numbering style, you have to change all the numbers one by one! As
you make each footnote, Nisus attaches an unnamed ruler to each
note; if you want to be the master of footnote formatting (or
Style), you have to change this, and again you must do this
yourself once more if you add a new a footnote. Unaccountably,
Nisus insists on inserting a Tab character before each new
footnote! When Nisus does a find, it cannot see footnotes; you
have to find just the footnotes explicitly. When Nisus does a find
of closed files, it cannot find text in footnotes at all! (Nor can
other applications see text in Nisus footnotes, since they are a
resource - whereas main text is of type TEXT.) And you cannot
index text from your footnotes, which makes indexing largely
useless to me, since in my academic writing the technical part of
the argument, and all the references, are in the footnotes.
The upshot is that the problems with footnoting alone are enough
to keep me from being able to use Nisus for routine production of
scholarly work, even though I'd like very much to do so. What
possessed Paragon to construct their system this way is beyond me
to imagine.
There are no table-making facilities whatever. Zero. Zilch. This
is an unbelievable state of affairs. Tables are not a luxury. I
use them very often, not merely to display data but for such
mundane things as making a syllabus, writing a resume, and making
a question and answer appear side by side. Nisus has nothing, not
even side-by-side paragraphs; all sorts of effects involving
paragraph placement that in Word are almost trivial to attain are
more or less impossible in Nisus. The manual mentions that you
could, if you wanted, make a table in Microsoft Word and then
import it to Nisus as a graphic. Hey, I think I'll make a table in
Microsoft Word and stay right in Microsoft Word. Get real,
Paragon. And remember, I'm not asking for anything here that I
couldn't do with 128K using Gutenberg on an Apple ][c.
Interestingly enough, Microsoft was shocked at the response they
got to the addition of tables in Word 4.0. Apparently they had
just though tables might be a nice way to format columns of
numbers and since Word provided rudimentary calculation features,
they threw in the tables, which were an immediate hit. Word's
tables still have some serious problems (such as not being able to
split a row over a page break), and Paragon could win over many
Word users with a killer table feature. Hint hint.
Since there is no such thing as a section in Nisus, you cannot
vary the columnization of your document; either it must all be one
column, or it must all be two, and so on - and your columns must
all be of equal width.
..
This text is wrapped as a setext. For more information send email
with the single word "setext" (no quotes) in the Subject: line to
<fileserver@tidbits.halcyon.com>. A file will be returned promptly.